home *** CD-ROM | disk | FTP | other *** search
/ Aminet 33 / Aminet 33 - October 1999.iso / Aminet / util / pack / xha.readme < prev    next >
Encoding:
Text File  |  1999-09-06  |  14.4 KB  |  313 lines

  1. Short:    XPK libs, smart delta with HA (ASC/HSC)
  2. Author:   Harri Hirvola and chinoclast@softhome.net (Gaelan Griffin)
  3. Uploader: chinoclast@softhome.net (Gaelan Griffin)
  4. Version:  1.3 (19.6.1999)
  5. Type:     util/pack
  6. Requires: XPK installed, util/pack/xpk_User.lha
  7.  
  8.  
  9.                              License/Disclaimer
  10.                              ------------------
  11.  
  12. This program is free software; you can redistribute it and/or modify
  13. it under the terms of the GNU General Public License as published by
  14. the Free Software Foundation; either version 2 of the License, or
  15. (at your option) any later version.
  16.  
  17. This program is distributed in the hope that it will be useful,
  18. but WITHOUT ANY WARRANTY; without even the implied warranty of
  19. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20. GNU General Public License for more details.
  21.  
  22. You should have received a copy of the GNU General Public License
  23. along with this program; if not, write to the Free Software
  24. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  25.  
  26.  
  27.                                 Installation
  28.                                 ------------
  29.  
  30. You'll need have the XPK package installed before you can use this library.
  31. The latest version of the XPK package is always available on aminet in
  32. the directory pub/aminet/util/pack/xpk_User.lha via http and ftp.
  33. It should also be available on http://www.amigaworld.com/support/xpkmaster/
  34.  
  35. If you already have the XPK package installed, then you can add the
  36. libraries to your system simply by copying the files from the 68000 or
  37. 68020 subdirectory to your LIBS:Compressors directory.
  38.  
  39.  
  40.                                 Description
  41.                                 -----------
  42.  
  43. This are two XPK sublibraries designed to offer maximum compression. The
  44. libs use code taken from the HA archiver by Harri Hirvola (HA 0.999beta)
  45. and implement the ASC/HSC compression methods of HA as XPK library.
  46. The code was rewritten to be completely reentrant and sophisticated delta
  47. preprocessor was added to form two XPK sub libraries. The delta routines
  48. test the data to determine the best type of delta to use: 8-bit, 16-bit,
  49. or none.  Although the library is designed for packing sound data, it
  50. also quite good at packing other types of data.
  51.  
  52. Modes   Description
  53. ------  --------------
  54.  0- 33  plain ASC/HSC compressor
  55. 34- 66  ASC/HSC compressor + delta preprocessor
  56. 67-100  each chunk is packed twice: with and without delta preprocessor,
  57.         the shorter chunk is used (doubles packing time)
  58.         Note: It makes only sense to use this mode if a file contains
  59.               normal data and samples.  Otherwise the packing time is
  60.               doubled but compression rate will probably not increase.
  61.  
  62.  
  63. The libraries in detail:
  64.  
  65. xpkSASC.library  Compression method using sliding window dictionary 
  66.                  followed by arithmetic coder.  Offers quite good
  67.                  compression on wide variety of file types.
  68.  
  69. xpkSHSC.library  Compression method based on finite context model 
  70.                  and arithmetic coder.  Quite slow for binary data,
  71.                  but offers very good compression especially for 
  72.                  longer text files.
  73.  
  74. The two libraries are basically the same except that they use
  75. different algorithms.  The HSC algorithm is very slow, but usually
  76. packs better than the ASC algorithm.  The HSC algorithm is probably
  77. too slow to be useful for everyday use, except for with very small
  78. files, or perhaps a PPC version.  The ASC algorithm is also
  79. relatively slow in comparison to some other sub libraries, but
  80. upper level 680x0 processors should be able to make use of it.
  81.  
  82. Since HA is a MS-DOS(tm) program it does some things only to overcome
  83. 64kB segments of 8086.  Using more efficient data structures for 32 bit
  84. platforms should improve the performance.  A PPC version of these
  85. libraries will also improve performance dramatically for those processors,
  86. as would an assembly rewrite (any volunteers?;-)).
  87.  
  88. The source code is included, however I would appreciate it if you sent
  89. me some email before publically distributing any derivative libraries
  90. with the same name.  This is in order to avoid incompatibilities and
  91. other potential problems.
  92.  
  93.  
  94.                                  Statistics
  95.                                  ----------
  96.  
  97. Here are some benchmarks to give you an impression of the compressionrate
  98. compared to other compression-libraries.  Unless otherwise noted maximum
  99. efficiency (100%) was used for the tests.
  100.  
  101. a) the ProTracker module 'Space Debris' (mostly 8-bit sample data)
  102.  
  103.                   XPK Lib    Size
  104.                  ---------  ------
  105. mod.space_debris            347582
  106. mod.space_debris.sasc.0     262008
  107. mod.space_debris.sasc.50    222184
  108. mod.space_debris.sasc.100   220908
  109. mod.space_debris.shsc.0     241228
  110. mod.space_debris.shsc.50    216764
  111. mod.space_debris.shsc.100   215884
  112. mod.space_debris.bzip       216424
  113. mod.space_debris.crms       224548
  114. mod.space_debris.duke       264768
  115. mod.space_debris.smpl       245276
  116. mod.space_debris.shri       263248
  117. mod.space_debris.dlta+shri  223384
  118. mod.space_debris.sqsh       228328
  119.  
  120.  
  121. b) the 22kHz WAV sample 'jingle' (16-bit sample data)
  122.  
  123.              XPK Lib        Size
  124.            ---------       ------
  125. jingle.wav                 799738
  126. jingle.wav.sasc.0          774184
  127. jingle.wav.sasc.50         677008
  128. jingle.wav.sasc.100        677008
  129. jingle.wav.shsc.0          788680
  130. jingle.wav.shsc.50         688612
  131. jingle.wav.shsc.100        688612
  132. jingle.wav.bzip            682704
  133. jingle.wav.crms            799872
  134. jingle.wav.duke            800000
  135. jingle.wav.sdhc.70 (P W1)  726388
  136. jingle.wav.sdhc.75 (P W2)  725672
  137. jingle.wav.smpl            799968
  138. jingle.wav.sqsh            800000
  139. jingle.wav.shri            782472
  140.  
  141.  
  142. c) the intuition autodoc (english text)
  143.  
  144.                XPK Lib    Size
  145.               ---------  ------
  146. intuition.doc            283460
  147. intuition.doc.sasc        92072
  148. intuition.doc.shsc        80280
  149. intuition.doc.bzip        74032
  150. intuition.doc.gzip        85564
  151. intuition.doc.shri        82084
  152.  
  153.  
  154. d) the AmigaVision executable (binary data)
  155.  
  156.              XPK Lib    Size
  157.             ---------  ------
  158. AmigaVision            594712
  159. AmigaVision.sasc       298948
  160. AmigaVision.shsc       288000
  161. AmigaVision.bzip       290316
  162. AmigaVision.gzip       299456
  163. AmigaVision.shri       283636
  164.  
  165.  
  166. e) Canterbury Corpus (http://corpus.canterbury.ac.nz)
  167.  
  168. OS Version V40 no-startup, only SetPatch 43.6
  169. CPU: CyberStorm 68060/50Mhz + PPC603e/233MhZ
  170.  
  171. File 'alice29.txt' with a size of 152089 bytes.
  172. Type  Num Version P    CSize     CTime      CSpd     UTime      USpd  Rate
  173. SASC:  33  1.3         57564      2.86     53177      1.17    129990  62.2
  174. SASC:  66  1.3         71716      2.53     60114      1.43    106355  52.9
  175. SASC: 100  1.3         57564      5.39     28216      1.17    129990  62.2
  176. SHSC:  33  1.3         48472      7.32     20777      7.69     19777  68.2
  177. SHSC:  66  1.3         60332     11.32     13435     11.91     12769  60.4
  178. SHSC: 100  1.3         48472     18.63      8163      7.69     19777  68.2
  179. File 'asyoulik.txt' with a size of 125179 bytes.
  180. Type  Num Version P    CSize     CTime      CSpd     UTime      USpd  Rate
  181. SASC:  33  1.3         50964      2.36     53041      1.04    120364  59.3
  182. SASC:  66  1.3         64252      2.11     59326      1.29     97037  48.7
  183. SASC: 100  1.3         50964      4.48     27941      1.04    120364  59.3
  184. SHSC:  33  1.3         43220      6.37     19651      6.70     18683  65.5
  185. SHSC:  66  1.3         53868      9.88     12669     10.48     11944  57.0
  186. SHSC: 100  1.3         43220     16.24      7708      6.70     18683  65.5
  187. File 'cp.html' with a size of 24603 bytes.
  188. Type  Num Version P    CSize     CTime      CSpd     UTime      USpd  Rate
  189. SASC:  33  1.3          7860      0.31     79364      0.16    153768  68.1
  190. SASC:  66  1.3          9868      0.32     76884      0.20    123015  59.9
  191. SASC: 100  1.3          7860      0.63     39052      0.16    153768  68.1
  192. SHSC:  33  1.3          6988      1.20     20502      1.27     19372  71.6
  193. SHSC:  66  1.3          9164      1.87     13156      2.01     12240  62.8
  194. SHSC: 100  1.3          6988      3.08      7987      1.28     19221  71.6
  195. File 'fields.c' with a size of 11150 bytes.
  196. Type  Num Version P    CSize     CTime      CSpd     UTime      USpd  Rate
  197. SASC:  33  1.3          3092      0.12     92916      0.06    185833  72.3
  198. SASC:  66  1.3          3828      0.13     85769      0.08    139375  65.7
  199. SASC: 100  1.3          3092      0.25     44600      0.06    185833  72.3
  200. SHSC:  33  1.3          2860      0.46     24239      0.49     22755  74.4
  201. SHSC:  66  1.3          3520      0.68     16397      0.73     15273  68.5
  202. SHSC: 100  1.3          2860      1.14      9780      0.49     22755  74.4
  203. File 'grammar.lsp' with a size of 3721 bytes.
  204. Type  Num Version P    CSize     CTime      CSpd     UTime      USpd  Rate
  205. SASC:  33  1.3          1244      0.04     93025      0.03    124033  66.6
  206. SASC:  66  1.3          1556      0.04     93025      0.03    124033  58.2
  207. SASC: 100  1.3          1244      0.09     41344      0.03    124033  66.6
  208. SHSC:  33  1.3          1136      0.18     20672      0.20     18605  69.5
  209. SHSC:  66  1.3          1476      0.26     14311      0.29     12831  60.4
  210. SHSC: 100  1.3          1136      0.45      8268      0.20     18605  69.5
  211. File 'kennedy.xls' with a size of 1029744 bytes.
  212. Type  Num Version P    CSize     CTime      CSpd     UTime      USpd  Rate
  213. SASC:  33  1.3        180196    116.72      8822      5.15    199950  82.6
  214. SASC:  66  1.3        251812     46.27     22255      6.32    162934  75.6
  215. SASC: 100  1.3        180196    163.01      6317      5.15    199950  82.6
  216. SHSC:  33  1.3        142024     65.98     15606     77.20     13338  86.3
  217. SHSC:  66  1.3        255292     80.93     12723     90.89     11329  75.3
  218. SHSC: 100  1.3        142024    146.90      7009     77.21     13336  86.3
  219. File 'lcet10.txt' with a size of 426754 bytes.
  220. Type  Num Version P    CSize     CTime      CSpd     UTime      USpd  Rate
  221. SASC:  33  1.3        155436      7.29     58539      3.17    134622  63.6
  222. SASC:  66  1.3        192008      6.75     63222      3.87    110272  55.1
  223. SASC: 100  1.3        155436     14.04     30395      3.17    134622  63.6
  224. SHSC:  33  1.3        132492     20.26     21063     21.36     19979  69.0
  225. SHSC:  66  1.3        164680     30.70     13900     32.42     13163  61.5
  226. SHSC: 100  1.3        132492     50.95      8375     21.36     19979  69.0
  227. File 'plrabn12.txt' with a size of 481861 bytes.
  228. Type  Num Version P    CSize     CTime      CSpd     UTime      USpd  Rate
  229. SASC:  33  1.3        205856     11.23     42908      4.20    114728  57.3
  230. SASC:  66  1.3        255748      8.85     54447      5.15     93565  47.0
  231. SASC: 100  1.3        205856     20.09     23985      4.20    114728  57.3
  232. SHSC:  33  1.3        173388     24.89     19359     26.06     18490  64.1
  233. SHSC:  66  1.3        213032     36.20     13311     38.01     12677  55.8
  234. SHSC: 100  1.3        173388     61.08      7889     26.06     18490  64.1
  235. File 'ptt5' with a size of 513216 bytes.
  236. Type  Num Version P    CSize     CTime      CSpd     UTime      USpd  Rate
  237. SASC:  33  1.3         52068      9.39     54655      1.39    369220  89.9
  238. SASC:  66  1.3         66140      9.34     54948      1.68    305485  87.2
  239. SASC: 100  1.3         52068     18.73     27400      1.39    369220  89.9
  240. SHSC:  33  1.3         52036     12.05     42590     12.99     39508  89.9
  241. SHSC:  66  1.3         66292     17.38     29529     18.54     27681  87.1
  242. SHSC: 100  1.3         52036     29.42     17444     12.99     39508  89.9
  243. File 'sum' with a size of 38240 bytes.
  244. Type  Num Version P    CSize     CTime      CSpd     UTime      USpd  Rate
  245. SASC:  33  1.3         13204      1.11     34450      0.29    131862  65.5
  246. SASC:  66  1.3         16720      0.84     45523      0.36    106222  56.3
  247. SASC: 100  1.3         13204      1.95     19610      0.29    131862  65.5
  248. SHSC:  33  1.3         13876      3.03     12620      3.36     11380  63.8
  249. SHSC:  66  1.3         17760      4.27      8955      4.73      8084  53.6
  250. SHSC: 100  1.3         13876      7.30      5238      3.36     11380  63.8
  251. File 'xargs.1' with a size of 4227 bytes.
  252. Type  Num Version P    CSize     CTime      CSpd     UTime      USpd  Rate
  253. SASC:  33  1.3          1744      0.05     84540      0.04    105675  58.8
  254. SASC:  66  1.3          2248      0.06     70450      0.05     84540  46.9
  255. SASC: 100  1.3          1744      0.11     38427      0.04    105675  58.8
  256. SHSC:  33  1.3          1580      0.24     17612      0.26     16257  62.7
  257. SHSC:  66  1.3          2072      0.37     11424      0.41     10309  51.0
  258. SHSC: 100  1.3          1580      0.62      6817      0.26     16257  62.7
  259.  
  260.  
  261.                            "Thank you"s must go to
  262.                            -----------------------
  263.  
  264. Bryan Ford, Urban Dominik Müller, Christian Schneider,
  265. Christian von Roques, Dirk Stöcker
  266.   for the XPK standard
  267.  
  268. Harri Hirvola
  269.   for releasing the sources of HA under the GNU license
  270.  
  271. Dirk Stöcker
  272.   for making the Canterbury Corpus benchmarks
  273.  
  274. Jan Krolzig
  275.   for testing the library on his '060
  276.  
  277.  
  278.                                   History
  279.                                   -------
  280.  
  281. V1.3  First public Release
  282.  
  283.  
  284. ============================= Archive contents =============================
  285.  
  286. Original  Packed Ratio    Date     Time    Name
  287. -------- ------- ----- --------- --------  -------------
  288.    11396    6068 46.7% 07-Jul-99 18:15:36 +xpkSASC.library
  289.    11468    6313 44.9% 07-Jul-99 18:15:36 +xpkSHSC.library
  290.    10420    5578 46.4% 07-Jul-99 18:21:34 +xpkSASC.library
  291.    10684    5881 44.9% 07-Jul-99 18:21:34 +xpkSHSC.library
  292.     4213    1269 69.8% 06-Jun-99 17:28:30 +acoder.c
  293.     1650     673 59.2% 06-Jun-99 10:58:38 +acoder.h
  294.    12619    3005 76.1% 14-Jun-99 18:29:30 +asc.c
  295.     2394     971 59.4% 12-Jun-99 17:05:12 +asc.h
  296.    17982    6993 61.1% 06-Jun-99 10:58:40 +COPYING
  297.    14987    1178 92.1% 19-Jun-99 18:09:44 +delta.c
  298.      667     169 74.6% 19-Jun-99 14:49:22 +delta.h
  299.     1214     572 52.8% 06-Jun-99 10:58:40 +ha.h
  300.     1469     688 53.1% 06-Jun-99 10:58:40 +haio.c
  301.     1514     747 50.6% 12-Jun-99 14:30:34 +haio.h
  302.    17090    4135 75.8% 14-Jun-99 18:29:14 +hsc.c
  303.     4128    1519 63.2% 12-Jun-99 17:04:56 +hsc.h
  304.     1171     460 60.7% 04-Jun-99 13:20:00 +SDI_compiler.h
  305.     1237     520 57.9% 07-Jul-99 18:15:50 +SMakeFile
  306.     5599    1784 68.1% 06-Jun-99 10:58:40 +swdict.c
  307.     1952     844 56.7% 06-Jun-99 10:58:40 +swdict.h
  308.    14554    4087 71.9% 04-Jul-99 13:01:18 +xpkSASC.c
  309.    14544    4073 71.9% 04-Jul-99 13:01:30 +xpkSHSC.c
  310.    13255    4536 65.7% 24-Jul-99 14:43:08 +xha.readme
  311. -------- ------- ----- --------- --------
  312.   176207   62063 64.7% 25-Jul-99 17:08:24   23 files
  313.